import { defineStore } from 'pinia'
import { ref, watch } from 'vue'

// 定义一个名为cart的store
export const cartStore = defineStore('cart', () => {
    // 定义一个ref类型的cartList，用于存储购物车列表
    const cartList = ref<any>(
        localStorage.getItem('cartList') ? JSON.parse(localStorage.getItem('cartList') as string) : []
    );
    // 定义一个函数，用于将cartList存储到localStorage中
    const saveStore = () => {
        localStorage.setItem('cartList', JSON.stringify(cartList.value))
    }

    // 加入购物车
    const addCart = (item: any) => {
        // 查找购物车列表中是否存在该商品
        const index = cartList.value.findIndex((v:any) => v.id == item.id);
        // 如果存在，则将该商品的数量加1
        if (index !== -1) {
            cartList.value[index].count += 1
            // 如果不存在，则将该商品添加到购物车列表中，并设置数量为1，check为false
        } else {
            cartList.value.push({
                ...item,
                count: 1,
                check: false
            })
        }
        // 将购物车列表存储到localStorage中
        saveStore()
        console.log(cartList.value)
    }
    watch(cartList, () => {
        console.log('2')
        saveStore()
    })
    watch(cartList.value, () => {
        console.log('1')
        saveStore()
    })
    // 清空购物车
    const clearCart = () => {
        cartList.value = []
        saveStore()
    }
    return {
        addCart,
        cartList,
        clearCart,
        
    }
})